This is the first beta release of the FutureBasic version of SpriteWorld.
Many apologies for the delay in getting out this version of FBSpriteWorld. Many things have happened in my life since I first promised to upload my fledgling attempts at
creating sprite-based animation on the Macintosh in FutureBasic. I have a new full-time job, which often requires long hours; my wife and I are expecting our first child in October 1994; the L.A. earthquake, which so damaged the house we were buying that the bank refused to fund our loan and catapulted us back into "house-hunting"; and, finally, another freeware package I uploaded, "SndTutor", brought a contract programming job my way.
I will *TRY* to be deligent about improving and upgrading FBSpriteWorld, but I invite you to participate in its development as well. I would only ask that you coordinate any major enhancement with me, so that we don't have a slug of competing versions floating around (if you have a couple new routines, feel free to to post them separately from this package; if you send them to me, I will include them in any upgrade I publish).
Feel free to distribute FBSpriteWorld anywhere you like, provided you distribute the entire package, including this file.
WHAT IS FBSPRITEWORLD?
"SpriteWorld" was originally published and generously placed in the public domain by Tony Myles. It is a *MAJOR* work, written in THINK C, containing full source code, code libraries, documentation, and examples. I highly recommend it to you, regardless of which programming language you use.
My original intent was to 'translate' SpriteWorld, line by line, into FutureBasic. I quickly rejected this approach, both from my lack of programming expertise and from the daunting (and frankly boring) task of translating several thousand lines of code with little or no creative challenge. Instead, I 'reverse engineered' Tony's version, using SpriteWorld as a sort of "animation reference manual." I took the basic concepts of Sprites, Frames, Layers and SpriteWorlds themselves, and tried to implement them in FutureBasic.
The result is a Sprite-based animation architecture which allows you to add smooth, multi-layered animation to your FutureBasic programs. It supports Black and White and Color Quickdraw, and (provided the user has System 7 and the Extended Time Manager), should run on any Macintosh at any screen depth. This version is somewhat optimized, in that it rigorously checks to be sure which Sprites need to be drawn, however there is room for improvement here. If you want to include relatively simple animation in your application, or write an animated About box, this version of FBSpriteWorld will suffice nicely. If, however, you want to write the next Crystal Quest, you'll need to add some optimizations (and if you do, please share them)!
Since this is not truly a Future Basic clone of SpriteWorld, I ask that you not hold Tony Myles responsible for any lack in performance, bugs, or 'undocumented features.' While Tony has given his permission and support for FBSpriteWorld, any flaws and deficiencies are mine and mine alone.
WHAT THE FBSPRITEWORLD INCLUDES
FBSpriteWorld includes the following:
1) Project folder
FBSpriteWorld.incl - FBSpriteWorld include file
FBSpriteWorld.glbl - FBSpriteWorld globals file
FBSpriteWorld.rsrc - FBSpriteWorld resource file
GraphicUtils.incl - General graphics utilities include file
SWSpinningGlobe.main - More complex Animation demo
SWSimpleBreakOut.main - Incomplete Break Out game demo
To run the demos, drag one of the main files into the Project folder. Compile with
the following default settings:
- Space required after keywords
- Optimize expressions as integer
- Arrays WITH element 0
LEGALITIES
The FBSpriteWorld source code is wholly owned and Copyright 1994 by Robert Hommel. Permission is hereby granted for anyone to create applications or other programs using the FBSpriteWorld code free of charge, royalty, or restrictions of any kind pertaining to the distribution, sale of, or licensing of such derivative works. You may not charge any fee for FBSpriteWorld itself other than the ordinary online, or distribution charges normally incurred for the distribution medium.
The only thing I ask in exchange for FBSpriteWorld, is a free copy for both Tony Myles and myself (that is make us fully paid, registered users) of any cool game that you write with FBSpriteWorld.
I would further ask that if you use my routines verbatim in your program, you credit me in your program and/or documentation.
ABOUT THE AUTHOR
I have over 10 years programming experience on Macs and PC's in various languages. I have written nearly a dozen commercial applications, many of them in FB. I am available for contract programming, time and energy permitting. If you have a really fun project, I'll make the time and find the energy!
FINAL THOUGHTS
Please notify me at one of the above mail addresses if you find any bugs or problems with FBSpriteWorld. I will do my best to post timely updates.
When asking for help or support, please keep in mind that I have a full-time job, a family, and other programming interests. I usually check AOL and Compuserve at least once a week, but I have regularly gone several weeks or more without accessing either.